package LeetCode;

/**
 * @author attcat
 * ---做一个有趣的程序员
 * @date 2022-10-07 10:56
 * @descriptionh
 * 移动0
 * 给定一个数组,nums，编写一个函数将所有的0移动到末尾,同时保留非0元素的相对顺序
 *输入【0,1,0,3,12】
 * 输出 【1,3,12,0,0】
 */
public class LeetCode_283 {

    /***
     * 采用双指针1
     * @param nums
     * @return
     */
    public  int[] moveZeroes(int[] nums){
        int j=0;//j 记录有几个0
       for(int i=0;i<nums.length;i++){
           if(0!=nums[i]){
               nums[j]=nums[i];
               j++;
           }
       }
       for(int k=j;k<nums.length;k++){
           nums[k]=0;
       }

       return  nums;
    }

    public static void main(String[] args) {
        LeetCode_283 leetCode_283=new LeetCode_283();
        int[] nums={0,1,0,3,12};
        leetCode_283.moveZeroes(nums);
        for(int i=0;i<nums.length;i++){
            System.out.println(nums[i]);
        }

    }

}
